<?php

FLEA::loadClass('FLEA_Controller_Action');

class Controller_Admin_user extends FLEA_Controller_Action
{

	/**
	 * $md_User
	 * @var Model_UserManager
	 */
	var $md_User;
	
	function Controller_Admin_user()
	{
		$this->md_User =& FLEA::getSingleton('Model_UserManager');
	}
	
	function actionIndex()
	{
		redirect($this->_url('userlist'));				
	}
	
	// 显示用户列表
	function actionuserList()
	{
		//从$_GET中获得分页参数: $pg:页码
		$pg = isset($_GET['pg'])?$_GET['pg']:1;
		
		//从$_GET中获得类号
		$ug_id = isset($_GET['ug_id'])?$_GET['ug_id']:null;
		
		//组织数据
		$viewdata = array(
			// 页码
			'pg' => $pg,
			// 当前用户组
			'ug_id' => $ug_id,
			// 获取符合条件的用户列表数组，包括用户组信息
			'userList' => $this->md_User->userList($ug_id),
			// 获得全部用户组列表，使用参数是为了返回文本树形串
			'ugList' => $this->md_User->usergroupList(-1),
			// title标签
			'title' => '用户管理',
			// 当前菜单标签
			'menu_user' => 'id="current"',
	    );
	    
		$this->_executeView('admin/Websetup_user.html', $viewdata);
	}
	
	// 创建新用户
	function actionuserCreate()
	{
		$this->_jumpto($this->md_User->createUser($_POST));
	}
	
	// 更新用户
	function actionuserUpdate()
	{
		// 如果新密码为空，则不更新密码
		if($_POST['password'] == ''){
			unset($_POST['password']);
		}
		$this->_jumpto($this->md_User->updateUser($_POST));
	}
	
	// ajxa方式删除一个用户
	function actionajaxuserRemove()
	{
		echo $this->md_User->removeUser($_GET['member_id']);
	}
	
	// 删除一个或多个选中的用户
	function actionuserRemove()
	{
		$this->_jumpto($this->md_User->removeUser($_POST['member_id']));
	}
	
	// ajax更新用户状态
	function actionajaxBlockupdate()
	{
		if($this->_isAjax()){
			echo $this->md_User->updateUser($_POST);
		}else{
			$this->_jumpto(false);
		}
	}
	
	/**
	 * 用户绑定角色和权限的页面
	 */
	function actionband(){
		
		// 检查传入值
		if(!empty($_GET['member_id'])){
			
		}else {
			$this->_jumpto(false);
		}
		
		$acl =& FLEA::getSingleton('Model_AclManager');
		/*@var $acl Model_AclManager*/
		
		//组织数据
		$viewdata = array(
			'thisuser' => $acl->loadUser($_GET['member_id']),
			'rolesList' => $this->md_User->rolesList(),
			'permissionsList' => $this->md_User->permissionsList(),
			'title' => '用户角色/权限绑定',
			'menu_user' => 'id="current"',
	    );
		$this->_executeView('admin/Websetup_userband.html', $viewdata);
	}
	
	/**
	 * 保存用户绑定
	 */
	function actionsaveband(){
		$acl =& FLEA::getSingleton('Model_AclManager');
		/*@var $acl Model_AclManager*/
		$member_id = $acl->saveuserBand($_POST);
		redirect($this->_url('band',array('member_id'=>$member_id)));
	}
	
	// 判断错误并实施页面跳转
	function _jumpto($stat, $err_text=null, $to_url=null, $err_url=null)
	{
		$err_text = isset($err_text) ? $err_text : "有错误发生！";
		$to_url = isset($to_url) ? $to_url : $this->_url('userlist');
		$err_url = isset($err_url) ? $err_url : $to_url;
		
		if($stat){
			redirect($to_url);
		}else{
			js_alert($err_text, '', $err_url);
		}
	}
	
	
}

?>